package ca.etsmtl.log120.tp3.tests;

import ca.etsmtl.log120.tp3.cartes.Carte;
import ca.etsmtl.log120.tp3.cartes.CouleurCarte;
import ca.etsmtl.log120.tp3.cartes.Denomination;
import ca.etsmtl.log120.tp3.mains.Main;
import ca.etsmtl.log120.tp3.mains.RangPoker;
import ca.etsmtl.log120.tp3.mains.ReqAnalyseMain;
import ca.etsmtl.log120.tp3.rangs.Brelan;
import ca.etsmtl.log120.tp3.rangs.Couleur;
import ca.etsmtl.log120.tp3.rangs.MainPleine;
import ca.etsmtl.log120.tp3.rangs.Paire;
import ca.etsmtl.log120.tp3.rangs.QuinteRoyale;
import junit.framework.TestCase;

public class RangsTest extends TestCase {
	
	Main mainA, mainB, mainC, mainD;
	
	public RangsTest(){
		mainA = new Main();
		mainA.add(new Carte(Denomination.DEUX, CouleurCarte.CARREAU));
		mainA.add(new Carte(Denomination.DEUX, CouleurCarte.CARREAU));
		mainA.add(new Carte(Denomination.TROIS, CouleurCarte.CARREAU));
		mainA.add(new Carte(Denomination.QUATRE, CouleurCarte.CARREAU));
		mainA.add(new Carte(Denomination.SIX, CouleurCarte.CARREAU));
		
		mainB = new Main();
		mainB.add(new Carte(Denomination.DEUX, CouleurCarte.CARREAU));
		mainB.add(new Carte(Denomination.DEUX, CouleurCarte.CARREAU));
		mainB.add(new Carte(Denomination.AS, CouleurCarte.CARREAU));
		mainB.add(new Carte(Denomination.AS, CouleurCarte.CARREAU));
		mainB.add(new Carte(Denomination.AS, CouleurCarte.PIQUE));
		
		mainC = new Main();
		mainC.add(new Carte(Denomination.CINQ, CouleurCarte.CARREAU));
		mainC.add(new Carte(Denomination.CINQ, CouleurCarte.CARREAU));
		mainC.add(new Carte(Denomination.TROIS, CouleurCarte.CARREAU));
		mainC.add(new Carte(Denomination.QUATRE, CouleurCarte.CARREAU));
		mainC.add(new Carte(Denomination.SEPT, CouleurCarte.PIQUE));
	}
	
	public void testRang(){
		
		RangPoker rang1 = new Paire();
		RangPoker rang2 = new Brelan();
		
		assertEquals(-1, rang1.compareTo(rang2));
		
		rang1 = new Couleur();
		rang2 = new QuinteRoyale();
		
		assertEquals(-1, rang1.compareTo(rang2));
		
		rang1 = new MainPleine();
		rang2 = new Brelan();
		
		assertEquals(1, rang1.compareTo(rang2));
	}
	
	public void testMain1(){

		//A est moins bonne que C
		assertEquals(1, mainB.getRangPoker().compareTo(mainA.getRangPoker()));
		
		assertEquals(-1, mainA.getRangPoker().compareTo(mainB.getRangPoker()));
	}
	
	public void testMain2(){
		
		//A est meilleur que C
		assertEquals(-1, mainC.getRangPoker().compareTo(mainA.getRangPoker()));
		
	}
	

}
